- a special case of shotgun surgery
- most of the time comes with a lot of duplications

- with all these problems, it may be legit when you need maximum flexibility and complete isolation of those classes

- probably the best way to attack the problem is to eliminate all the hierarchies except one.

- collapsing a hierarchy can be done by merging all the logic into a single class -> less to maintain, less duplication, can lead to Divergent Change

- partially collapsing a hierarchy, or making the remaining one in charge of initializing the rest only when/where needed can lead to a compromise solution. You can keep most of flexibility and isolation when needed, but drop it when not.